<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		this
		1. 在全局 this--->window(严格 非严格)
		2. 事件绑定  this--->触发事件的DOM元素
		3. 普通函数执行 this--->window   函数名()  严格（undefined) 非严格（window)
		4. 自执行函数，回调函数  this--->window   严格（undefined) 非严格（window)
		5. 定时器 this--->window   严格（window) 非严格（window)
		6. 函数执行看前面有没有点,点前面是谁，this就是谁
		7. 箭头函数，没有自己的this,this上级上下文中的this
		8. call/apply/bind 修改this指向
		<button id="btn">点击</button>
		<script>
			
			// console.log(this);
			
			// btn.onclick=function(){
			// 	console.log(this);
			// }
			
			// function show(){
			// 	console.log(this);
			// }
			
			// btn.onclick=show;//函数名()-->调用函数执行
			
			
			// function show(){
			// 	console.log(this);
			// }
			// show();
			
			//只执行函数：自己调用自己
			// (function(){
			// 	console.log(this);
			// })()
			
			
			//回调函数：一个函数当做另一个函数的参数
			
			// function show(n){
			// 	console.log(n);
			// }
			// show(function(){})
			
			//  "use strict";
			// let arr=[1,2,3];
			// arr.map(function(){
			// 	console.log(this);
			// })
			
			// "use strict";
			// setTimeout(function(){
			// 	console.log(this);
			// },1000)
			
			// let obj={
			// 	name:"lili",
			// 	show:function(){
			// 		console.log(this);//obj
			// 	}
			// }
			
			// obj.show();
			//arr.prototype.show();//this--->arr.prototype
			
			let obj={
				name:"lili",
				show:()=>{//箭头函数，没有自己的this,this上级上下文中的this
					console.log(this);//this-->window
				}
			}
			
			obj.show();
		</script>
	</body>
</html>
